package com.demo.expertsystemdemo.service.mongodb.simple;

import com.demo.expertsystemdemo.entity.mongodb.ExpertInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.Date;

@Slf4j
@Service
public class SaveDocumentService {
    private final MongoTemplate mongoTemplate;

    public SaveDocumentService(MongoTemplate mongoTemplate) {
        this.mongoTemplate = mongoTemplate;
    }

    /**
     * 存储【一条】专家信息，如果文档信息已经【存在就执行更新】
     *
     * @return 存储的文档信息
     */
    public Object save() {
        String collectionName = "expert_info";
        // 设置专家信息
        ExpertInfo expert = new ExpertInfo().setName(
                "lzb").setIdCard("123456789012345678").setAge(28).setProfessional("java").setGender("男").setRecord(
                Arrays.asList("java", "python", "c++")).setCreateTime(new Date());
        // 存储专家信息,如果文档信息已经存在就执行更新
        ExpertInfo newExpert = mongoTemplate.save(expert, collectionName);
        // 输出存储结果
        log.info("存储的专家信息为：{}", newExpert);
        return newExpert;
    }
}
